home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / msysjour / vol06 / 01 / wintro4 / stock.h < prev    next >
C/C++ Source or Header  |  1990-12-31  |  5KB  |  179 lines

  1. /*===========================================================================*/
  2. /*                                                                           */
  3. /* File    : STOCK.H                                                         */
  4. /*                                                                           */
  5. /* Purpose :                                                                 */
  6. /*                                                                           */
  7. /* History :                                                                 */
  8. /*                                                                           */
  9. /* (C) Copyright 1990 Marc Adler/Magma Systems     All Rights Reserved       */
  10. /*===========================================================================*/
  11.  
  12.  
  13. extern HANDLE hThisInstance;  /* Program instance handle */
  14. extern HWND hWndMain;         /* Handle to main window   */
  15. extern HWND hwndMDIClient;    /* Handle to MDI client    */
  16. extern HWND hWndActive;
  17. extern HWND hWndStatus;
  18.   #define Y_STATUSWINDOW   20   /* The height of the status window */
  19. extern HANDLE hCurrStockInfo;
  20.  
  21. #define CBWNDEXTRA          sizeof(HANDLE)
  22.  
  23.  
  24. /*
  25.   Stock information
  26. */
  27.  
  28. #define MAXSTOCKNAME     5
  29. #define MAXDESCRIPTION   32
  30.  
  31. typedef struct tagDate
  32. {
  33.   BYTE   chMonth;
  34.   BYTE   chDay;
  35.   BYTE   chYear;
  36. } DATE;
  37.  
  38. typedef  DWORD  PRICE;      /* dollar amt * iDenominator + fractional amount */
  39. typedef  DWORD  VOLUME;
  40.  
  41. typedef struct tagTick
  42. {
  43.   PRICE  price;
  44.   VOLUME dwVolume;
  45.   DATE   date;
  46. } TICK, FAR *LPTICK;
  47.  
  48. /*
  49.   Data structure describing how we draw the graph
  50. */
  51. typedef struct tagGraphInfo
  52. {
  53.   PRICE dwMinPrice;
  54.   PRICE dwMaxPrice;
  55.   DWORD dwScaleFactor;
  56.   DWORD dwTickInterval;
  57.   WORD  iDenominator;    /* the fractional amount used for this stock */
  58.   WORD  iGridPen;
  59. } GRAPHINFO, FAR *LPGRAPHINFO;
  60.  
  61.  
  62. typedef struct tagStockFile
  63. {
  64.   DWORD  dwMagic;
  65. #define MAGIC_COOKIE             66666666L
  66.   char   szStock[MAXSTOCKNAME];
  67.   char   szDescription[MAXDESCRIPTION];
  68.   GRAPHINFO graphinfo;
  69.   WORD   nTicks;
  70. /*
  71.   TICK   aTicks[1];
  72. */
  73. } STOCKFILE;
  74.  
  75. typedef struct tagInCoreStockInfo
  76. {
  77.   char      szFileName[14];  /* file name where the stock data is kept  */
  78.   STOCKFILE StockFile;       /* a copy of the stock file header         */
  79.   HANDLE    hTicks;
  80.   WORD      nTicksAllocated; /* how large the ticker array is           */
  81.   HWND      hWnd;            /* window which the stock is shown in      */
  82.   DWORD     dwFlags;         /* any kind of status bits we need to keep */
  83. #define STATE_HAS_VGRID  1L
  84. #define STATE_HAS_HGRID  2L
  85. #define STATE_DIRTY      4L
  86. } STOCKINFO, FAR *LPSTOCKINFO;
  87.  
  88.  
  89. #define ID_ABOUT            99
  90. #define ID_STOCK            100
  91. #define ID_GRAPH            101
  92.  
  93. #define ID_NEW              101
  94. #define ID_OPEN             102
  95. #define ID_SAVE             103
  96. #define ID_CLOSE            104
  97. #define ID_PRINT            105
  98. #define ID_EXIT             106
  99. #define ID_MAP              107
  100.  
  101. #define ID_TICK_ADD         200
  102. #define ID_TICK_CHANGE      201
  103. #define ID_GRAPH_PRICE      202
  104. #define ID_GRAPH_VOLUME     203
  105. #define ID_GRAPH_ZOOM       204
  106. #define ID_GRAPH_COLORS     205
  107. #define ID_GRAPH_OPTIONS    199
  108. #define ID_GRAPH_GRID_HORZ  206
  109. #define ID_GRAPH_GRID_VERT  207
  110. #define ID_WINDOW_TILE      208
  111. #define ID_WINDOW_CASCADE   209
  112. #define ID_WINDOW_ICONS     210
  113. #define ID_WINDOW_CLOSEALL  211
  114. #define ID_WINDOW_CHILDREN  220
  115.  
  116. #define ID_TICK_DATE        100
  117. #define ID_TICK_PRICE       101
  118. #define ID_TICK_VOLUME      102
  119.  
  120.  
  121. #define ID_RECTTEXT   120
  122. #define ID_VXEXT      109
  123. #define ID_VXORG      107
  124. #define ID_VYEXT      111
  125. #define ID_VYORG      113
  126. #define ID_WXEXT      103
  127. #define ID_WXORG      101
  128. #define ID_WYEXT      105
  129. #define ID_WYORG      115
  130.  
  131. #define IDC_FILENAME  400
  132. #define IDC_EDIT      401
  133. #define IDC_FILES     402
  134. #define IDC_PATH      403
  135. #define IDC_LISTBOX   404
  136.  
  137.  
  138. /*
  139.   Stuff for graph dialog box
  140. */
  141. #define ID_SYMBOL     300
  142. #define ID_MINPRICE   301
  143. #define ID_MAXPRICE   302
  144. #define ID_FACTOR     303
  145. #define ID_TICKINT    304
  146. #define ID_HORZGRID   305
  147. #define ID_VERTGRID   306
  148. #define ID_GRIDSTYLE  307
  149. #define ID_HELP       308
  150. #define ID_DENOMINATOR 309
  151.  
  152.  
  153.  
  154. int NEAR PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
  155. BOOL FAR PASCAL InitializeApplication(VOID);
  156. BOOL FAR PASCAL InitializeInstance(LPSTR lpCmdLine, WORD nCmdShow);
  157. LONG FAR PASCAL MainWndProc(HWND, WORD, WORD, LONG);
  158. LONG FAR PASCAL StatusWndProc(HWND, WORD, WORD, LONG);
  159. LONG FAR PASCAL GraphWndProc(HWND, WORD, WORD, LONG);
  160. BOOL FAR PASCAL AboutDlgProc(HWND, WORD, WORD, LONG);
  161. BOOL FAR PASCAL MapDlgProc(HWND, WORD, WORD, LONG);
  162. BOOL FAR PASCAL AddTickDlgProc(HWND, WORD, WORD, LONG);
  163. BOOL FAR PASCAL GraphOptionsDlgProc(HWND, WORD, WORD, LONG);
  164. int PASCAL StockFileSave(HANDLE hStockInfo);
  165. VOID MainPaint(HWND, HDC);
  166. int PASCAL StockFileRead(LPSTR szFileName);
  167. HWND PASCAL GraphCreateWindow(LPSTR lpName);
  168. int PASCAL GraphWndPaint(HWND hWnd, HDC hDC, LPSTOCKINFO lpStockInfo);
  169.  
  170. /* FILEOPEN.C */
  171. HANDLE FAR PASCAL OpenDlg(HWND, unsigned, WORD, LONG);
  172. void SeparateFile(HWND, LPSTR, LPSTR, LPSTR);
  173. void UpdateListBox(HWND);
  174. void AddExt(PSTR, PSTR);
  175. void ChangeDefExt(PSTR, PSTR);
  176.  
  177. LONG GetDlgItemLong(HWND hDlg, WORD id, BOOL FAR *lpTranslated, BOOL bSigned);
  178.  
  179.